package com.example.concurrent.chapter08;

/**
 * @author Liuqz
 * @date 2018/11/22 20:16
 *
 * 任务队列,主要将任务提交到线程池中的任务
 */
public interface RunnableQueue {

    /**
     * 当有新的任务进来时首先会offer到队列中
     */
    void offer(Runnable runnable);

    /**
     * 工作线程通过take方法获得Runnable
     */
    Runnable take() throws InterruptedException;

    /**
     * 获取任务队列中的数量
     * @return
     */
    int size();
}
